package com.dingup.paike.service.message;

import com.dingup.paike.adapter.pk.PkLessonInfoAdapter;
import com.dingup.paike.enums.MessageTypeEnum;
import com.dingup.paike.model.pk.PkLessonInfo;
import com.dingup.paike.model.pk.PkLessonUser;

import java.util.List;

/**
 * Created by wancheng on 2018/10/16.
 */
public interface DingTalkMsgService {
    /**
     * 老师上课提醒
     * @param teacherId String
     * @param teacherName String
     * @param pkLessonIds List<Integer>
     */
    void sendMsgBeforeClassAtYesterdayForTeacher(String teacherId, String teacherName, List<Integer> pkLessonIds);

    /**
     * 班主任上课提醒
     * @param masterId String
     * @param masterName String
     * @param pkLessonIds List<Integer>
     */
    void sendMsgBeforeClassAtYesterdayForMaster(String masterId, String masterName, List<Integer> pkLessonIds);

    /**
     * 即将上课通知
     * @param user PkLessonUser
     * @param className String
     * @param type MessageTypeEnum
     * @param pkLessonInfoAdapter PkLessonInfoAdapter
     */
    void sendMsgBeforeTenMinute(PkLessonUser user, String className, MessageTypeEnum type, PkLessonInfoAdapter pkLessonInfoAdapter);

    /**
     * 课堂反馈
     * @param teacher PkLessonUser
     * @param lessonInfo PkLessonInfo
     * @return Boolean
     */
    Boolean sendMsgAfterClassForTeacher(PkLessonUser teacher, PkLessonInfo lessonInfo);

    /**
     * 班主任课堂反馈提醒文本消息
     *
     * @param master PkLessonUser
     * @param lessonInfo PkLessonInfo
     * @return Boolean
     */
    Boolean sendMsgAfterClassTextForMaster(PkLessonUser master, PkLessonInfo lessonInfo);

    /**
     * 班主任课堂反馈提醒文本消息
     *
     * @param master PkLessonUser
     * @param lessonInfo PkLessonInfo
     * @return Boolean
     */
    Boolean sendMsgAfterClassUrlForMaster(PkLessonUser master, PkLessonInfo lessonInfo);

    /**
     * 签到表
     * @param user PkLessonUser
     * @param pkLessonId List<Integer>
     */
    void sendMsgOfSignInForMaster(PkLessonUser user, List<Integer> pkLessonId);

    /**
     * 确认课时
     * @param master PkLessonUser
     * @param pkLessonInfo PkLessonInfo
     */
    void sendMsgOfConfirmClassHourForMaster(PkLessonUser master, PkLessonInfo pkLessonInfo);

    /**
     * 学生完成作业,给批改老师发送钉钉消息
     *
     * @param userId      String
     * @param userName    String
     * @param homeworkId  Integer
     * @param studentName String
     * @param subjectName String
     */
    void sendMsgForHomeworkFinish(String userId, String userName, Integer homeworkId, String studentName, String subjectName);
}
